﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace StandAlone
{
    public partial class frm_Facturas : Form
    {
        public static string Nro_Factura;
        public frm_Facturas()
        {
            InitializeComponent();
            txt_Nro_Factura.Text = Nro_Factura;
            Cargar_Factura();
        }

        private void btn_Aceptar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btn_Siguiente_Click(object sender, EventArgs e)
        {
            int Nro_Factura_Sig;
            Nro_Factura_Sig = Convert.ToInt32(txt_Nro_Factura.Text);
            Nro_Factura_Sig++;
            //Nro_Factura_Ant.ToString().PadLeft(6, '0');
            DataSet ds = new DataSet();
            ds = Funciones.Read_DataBase("SELECT  COUNT(Nro_Factura) AS Facturas FROM Facturas WHERE Nro_Factura = '" + Nro_Factura_Sig.ToString().PadLeft(6, '0') + "'");
            if (ds.Tables[0].Rows[0].ItemArray[0].ToString() == (0).ToString())
            {
                MessageBox.Show("No existen más facturas", "Error"
                        , MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                txt_Nro_Factura.Text = Nro_Factura_Sig.ToString().PadLeft(6, '0');
                Cargar_Factura();
            }
        }

        private void Cargar_Factura()
        {
            //ENCABEZADO y TOTAL
            DataSet ds = new DataSet();
            ds = Funciones.Read_DataBase("SELECT Clientes.Nombre + ' ' + Clientes.Apellido AS [Nombre_Completo], Clientes.DNI, Clientes.CUIT,"
            + " Facturas.Total, Facturas.Fecha, Facturas.Usr FROM Facturas INNER JOIN Clientes ON Facturas.Id_Cliente = Clientes.Id_Cliente"
            + " Where Facturas.Nro_Factura = '" + txt_Nro_Factura.Text + "'");
            txt_Cliente.Text = ds.Tables[0].Rows[0].ItemArray[0].ToString();
            if (ds.Tables[0].Rows[0].ItemArray[1].ToString().Trim() == "")
            {
                txt_DNI.Visible = false;
                label5.Visible = false;
            }
            else
            {
                txt_DNI.Text = ds.Tables[0].Rows[0].ItemArray[1].ToString();
                txt_DNI.Visible = true;
                label5.Visible = true;
            }

            txt_DNI.Text = ds.Tables[0].Rows[0].ItemArray[1].ToString();
            txt_CUIT.Text = ds.Tables[0].Rows[0].ItemArray[2].ToString();
            txt_Total.Text = ds.Tables[0].Rows[0].ItemArray[3].ToString();
            txt_Fecha.Text = ds.Tables[0].Rows[0].ItemArray[4].ToString();

            //DETALLE
            string Consulta_Detalle = "SELECT (Articulos.Articulo + ' ' + Marcas.Marca) AS Articulo, Facturas_Detalle.PrecioUnitario, Facturas_Detalle.Cantidad, "
            + " Facturas_Detalle.PrecioUnitario * Facturas_Detalle.Cantidad AS [Subtotal] FROM Facturas INNER JOIN "
            + "( Facturas_Detalle INNER JOIN Articulos ON Facturas_Detalle.Id_Articulo = Articulos.Id_Articulo) ON Facturas.Nro_Factura"
            + " = Facturas_Detalle.Nro_Factura INNER JOIN Marcas on Articulos.Id_Marca = Marcas.Id_Marca WHERE Facturas.Nro_Factura = '" + txt_Nro_Factura.Text + "'";

            ds = new DataSet();

            ds = Funciones.Read_DataBase(Consulta_Detalle);
            grd_Detalle.DataSource = ds.Tables[0];

        }

        private void btn_Anterior_Click(object sender, EventArgs e)
        {
            int Nro_Factura_Ant;
            Nro_Factura_Ant = Convert.ToInt32(txt_Nro_Factura.Text);
            Nro_Factura_Ant--;
            //Nro_Factura_Ant.ToString().PadLeft(6, '0');
            DataSet ds = new DataSet();
            ds = Funciones.Read_DataBase("SELECT  COUNT(Nro_Factura) AS Facturas FROM Facturas WHERE Nro_Factura = '" + Nro_Factura_Ant.ToString().PadLeft(6, '0') + "'");
            if (ds.Tables[0].Rows[0].ItemArray[0].ToString() == (0).ToString())
            {
                MessageBox.Show("No existen facturas anteriores", "Error"
                        , MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                txt_Nro_Factura.Text = Nro_Factura_Ant.ToString().PadLeft(6, '0');
                Cargar_Factura();
            }
        }
    }
}
